This invention relates to laying out text along a path. Graphic illustration software applications allow users to automate manual graphic design techniques. A software user can create and select images and attributes, then command the software to automatically implement the selections to create an artwork. For example, a user can use an application such as Adobe® Illustrator® graphics illustration software, available from Adobe Systems Incorporated of San Jose, Calif., to create a path of any shape, select graphical images such as glyphs representing text characters, and instruct the application to place the graphical images along the path. The application then determines the proper placement of the graphical images along the path.
FIG. 1 illustrates one application of positioning or laying out text along a path 10 in a typical graphic illustration program. Text typically includes a string or sequence of characters, which are non-divisible abstract symbols that represent a phonetic or pictographic meaning and that can be used as a building block for representing more complex concepts. A glyph is a graphical representation that specifies a visual appearance of the abstract symbol of a character, and typically includes one or more bitmap or vector graphics objects. In this specification, the terms “glyph” and “character” will be used interchangeably to refer to the text representation being laid out along a path. Thus, the text to be laid out includes glyphs, symbols or characters 120, 130 representing characters of text.
The path 10 along which the characters are positioned is a continuous sequence of contiguous points, such as a line or curve. When more than one character of text is laid out along the path 110, all the characters 120, 130 can be of relatively the same font size and projected approximately the same distance from the path 10. Alternatively, the characters of text 120, 130 can be varied in size and distance from the path 10. Regardless of the relative size and position of the characters 120, 130, the characters can be classified as base characters, which are the main or primary glyphs, symbols or characters, and related characters, which are secondary glyphs, symbols or characters that are associated with a base characters and that mark, reference, indicate, or clarify the meaning of or otherwise relate to the base character. Related characters are typically positioned near their respective base character according to a defined spatial relationship. This spatial relationship creates the visual appearance of a grouping of text when characters 120, 130 are displayed. This grouping indicates to a viewer that the base character and its related characters have a logical relationship with one another. Examples of related characters can include adornment characters, such as superscripts, subscripts, footnotes, daggers, asterisks, accents, and Japanese ruby. Related characters 130 are generally positioned to the left or right of, or above or below, their base character.
In the application illustrated in FIG. 1, each character of text 120, 130 is associated with a location along path 110, and is placed at that location along (although not necessarily on) the path 110 in an orientation that is tangent to path 110. In this orientation, the baseline of the characters 120, 130 will typically be parallel to the tangent of the path's curve at the point where the character 120, 130 is located. Thus, characters 120, 130 are laid out to follow the contour of path 110, which can give a visually pleasing image.
The results can be less pleasing, however, when the characters are positioned near a tight curve or corner 140 in the path. As illustrated in FIG. 1, characters 150 and 160 are positioned adjacent to and on opposite sides of corner 140. Rendering these characters in orientations tangent to the path at their respective locations causes the group of characters 150, 160 to appear disjointed when placed along path 110.